\documentclass[12pt,titlepage,oneside,openany,onecolumn]{book}
\usepackage{times}
\usepackage{a4}
\usepackage{fancyhdr}
\usepackage[linkbordercolor={1 1 1}]{hyperref}
\oddsidemargin 0in
\evensidemargin 0in
\textwidth 6.5in
\headheight .21in
\topmargin 0in
\textheight 8.79in
\title{NHTTPD Object System}
\author{Andrew Madigan}
\date{2006-11-25}

\fancypagestyle{plain}{
  \fancyhf{}}
\lhead{\leftmark}
\chead{}
\lfoot{}
\cfoot{}
\rhead{\thepage}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}

\renewcommand{\chaptermark}[1]{%
  \markboth{#1}{}}
\begin{document}
\maketitle
\setcounter{page}{1}
\tableofcontents
\pagestyle{fancy}
\chapter{Naming}

A uniform and predictable naming scheme should be used for all
entities, to make it easier to program using both the main server
binary and modules added to it. Note that no public entity should
start with an underscore character, this is to be for private
(in-file) use. Symbols beginning with an underscore are not to be
exported from libraries. Symbols containing multiple words should use
camel case.

\section{Classes}

Class names are capitalized, and will only occur in code as the name
of the main struct of the class. All functions and other typedefs
associated with the class must use the class prefix. The prefix can be
anything, including the name of the class. Preferably they should be
two to three uppercase characters and have some relation to the class name. For
instance, the prefix for the String class is \.{STR}. The prefix is to
be followed by an underscore (\_).

\section{Instance Variables}

Instance variables (those contained within the main struct or
substructs thereof) need not be prefixed, and should start with a
lower case letter. The implementer may specify whether certain
instance variables are to be accessed outside the class. The values of
variables that are not to be accessed outside of the class are
unspecified. Attempting to access or dereference them is an error.

\section{Functions}

Class functions are to be named with the class prefix, followed by an
underscore, then the function name, which should begin with an
uppercase letter. If a function is overloaded, the type of the
overloaded variables should follow the function name. Not every form
of an overloaded function name needs to include the type of the
variables, the most basic function may leave it out. When an
overloaded parameter is a class name, the type name added to the
function name should be the class prefix in title case (rather than
all caps). For instance, in the String class, the Append method adds
the contents of one value to the current string. The basic Append
method adds a single character. The AppendStr (STR being the prefix
for the String class) adds the contents of one string to another
string

\section{Constructors}

Constructors are to be named with the class prefix, followed by an
underscore, then Create.

\end{document}
